今天來聊 刪除資料 了
UI部分,在每個category後面加個 刪除 按鈕
url (post): http://localhost:8000/store/categoryDelete/1/
route 需要 id 參數 才知道 刪除哪一筆資料
store/urls.py
...
path('categoryDelete/<int:id>/', views.categoryDelete, name='categoryDelete')
...
{% url '' <parm> %} 第二個參數就是 對應到route id
store/templates/store/category.html
...
<td>
<form method="post" action="{% url 'store:categoryDelete' category.id %}">
{% csrf_token %}
<a href="{% url 'store:categoryDelete' category.id %}">
<input type="submit" value="刪除">
</a>
</form>
</td>
...
funcName(request, id) id 對應到route
<model>.objects.get(id=id) 抓一筆資料,回傳一個物件
<modelForm>(instance=<model>) 塞那筆資料的所有欄位,在html 就會帶入了
store/views.py
def categoryDelete(request, id):
category = get_object_or_404(Category, id=id)
if request.method == 'POST':
category.delete()
messages.success(request, '刪除成功')
return redirect(reverse('store:category'))
這樣就完成了